package com.hengpeng.itfints.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;

import com.hengpeng.itfints.port.PortFactory;
import com.hengpeng.itfints.service.CommonService;
import com.hengpeng.itfints.service.PersistService;
import com.hengpeng.itfints.service.ServiceFactory;
import com.hengpeng.itfints.service.UserService;
import com.hengpeng.itfints.service.account.AccountService;
import com.hengpeng.itfints.service.article.ArticleService;
import com.hengpeng.itfints.service.assign.AssignService;
import com.hengpeng.itfints.service.bankproduct.BankProductService;
import com.hengpeng.itfints.service.borrowInfo.BorrowInfoService;
import com.hengpeng.itfints.service.invest.InvestInfoService;
import com.hengpeng.itfints.service.links.LinksService;
import com.hengpeng.itfints.service.message.MessageService;
import com.hengpeng.itfints.service.notice.ProjectService;
import com.hengpeng.itfints.service.payment.PaymentService;
import com.hengpeng.itfints.service.repayment.RepaymentService;
import com.hengpeng.itfints.service.userInfo.UserBankCardService;

@Service
public class ServiceFactoryImpl implements ServiceFactory
{
	@Autowired
	@Qualifier("portFactoryImpl")
	private PortFactory protFactory;

	@Autowired
	private UserService userService;

	@Autowired
	private MessageService messageService;

	@Autowired
	private LinksService linksService;

	@Autowired
	private BorrowInfoService borrowInfoService;

	@Autowired
	private RepaymentService repaymentService;

	@Autowired
	private InvestInfoService investInfoService;

	@Autowired
	private AccountService accountService;

	@Autowired
	private PaymentService paymentService;

	@Autowired
	@Qualifier("remotePersistServiceImpl")
	private PersistService persistServcie;

	@Autowired
	private RestTemplate restTemplate;

	@Autowired
	private AssignService assignService;

	@Autowired
	private UserBankCardService userBankCardService;

	@Autowired
	private CommonService commonService;

	@Autowired
	private BankProductService bankProductService;

	@Autowired
	private ProjectService projectService;

	@Autowired
	private ArticleService articleService;
	
	@Override
	public ProjectService getProjectService()
	{
		return projectService;
	}

	@Override
	public BankProductService getBankProductService()
	{
		return bankProductService;
	}

	public ArticleService getArticleService(){
		return articleService;
	};
	
	@Override
	public CommonService getCommonService(){
		return commonService;
	}

	@Override
	public UserBankCardService getUserBankCardService()
	{
		return userBankCardService;
	}

	@Override
	public AssignService getAssignService()
	{
		return assignService;
	}

	public PortFactory getProtFactory()
	{
		return protFactory;
	}

	@Override
	public UserService getUserService()
	{
		return userService;
	}

	public MessageService getMessageService()
	{
		return messageService;
	}

	@Override
	public LinksService getLinksService()
	{
		return linksService;
	}

	@Override
	public BorrowInfoService getBorrowInfoService()
	{
		return borrowInfoService;
	}

	@Override
	public RepaymentService getRepaymentService()
	{
		return repaymentService;
	}

	@Override
	public InvestInfoService getInvestInfoService()
	{
		return investInfoService;
	}

	@Override
	public AccountService getAccountService()
	{
		return accountService;
	}

	@Override
	public PaymentService getPaymentService()
	{
		return paymentService;
	}

	@Override
	public PersistService getPersistService()
	{
		return persistServcie;
	}

	@Override
	public RestTemplate getRestTemplate()
	{
		return restTemplate;
	}

}
